Dashboard Temp Share Shortlinks Frames API

HTMLify

710. Random Pick with Blacklist.java
Views: 1 | Author: cody
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 710. Random Pick with Blacklist
class Solution {
    HashMap<Integer,Integer> map;
    Random r;
    int valid;
    public Solution(int n, int[] blacklist) {
        map = new HashMap<>();
        r = new Random();
        for(int i =0; i<blacklist.length; i++){
            map.put(blacklist[i],-1);
        }
        valid = n - blacklist.length;
        for(int i = 0; i<blacklist.length; i++){
            if(blacklist[i]<valid){
                while(map.containsKey(n-1)==true){
                    n--;
                }
                
                map.put(blacklist[i],n-1);
                n--;
            }
        }
        
    }
    
    public int pick() {
        int val = r.nextInt(valid);
        if(map.containsKey(val) == true ){
            return map.get(val);
        } else {
            return val;
        }
    }
}